﻿using System;

namespace Whoot
{
    public interface IAssetService : IBuiltInService
    {
        T Load<T>(string assetPath) where T : UnityEngine.Object;

        UnityEngine.Object Load(string assetPath, Type type);

        void LoadAsync<T>(string assetPath, Action<T> callback) where T : UnityEngine.Object;

        void LoadAsync(string assetPath, Type type, Action<UnityEngine.Object> callback);

        void Release(UnityEngine.Object asset);

        void ReleaseUnLoad();
    }
}